package online.longzipeng.householdbillssystem.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import online.longzipeng.householdbillssystem.business.entity.Bill;
import com.baomidou.mybatisplus.extension.service.IService;
import online.longzipeng.householdbillssystem.business.vo.bill.QueryBillVO;
import online.longzipeng.householdbillssystem.business.vo.querey.QueryVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author lzp
 * @since 2021-04-17
 */
public interface BillService extends IService<Bill> {

    Bill findById(Integer id);
    /**
     * 查询用户组下所有的账单
     */
    List<Bill> findFromGroupByUserGroupId(Integer id);

    /**
     * 查询当前用户私有的账单
     */
    List<Bill> findFromUserByUserId(Integer id);

    /**
     * 删除单个账单
     */
    boolean delete(Integer id);

    /**
     * 添加账单
     */
    boolean add(Bill bill);

    /**
     * 条件查询私有所有账单带分页
     */
    IPage<Bill> getListPrivatePage(QueryBillVO queryVO,Long userId);

    /**
     * 条件查询所有账单带分页
     */
    IPage<Bill> getAllListPage(QueryBillVO queryVO,Long userId);

    /**
     * 条件查询用户组中所有账单带分页
     */
    IPage<Bill> getListGroupPage(QueryBillVO queryVO,Long userId);

    /**
     * 根据条件获取账单
     */
    IPage<Bill> getListPage(QueryBillVO queryVO,Long userId);
}
